package com.yikes.srb.service;

import com.yikes.srb.common.result.PageResult;
import com.yikes.srb.leadingModle.form.transFlow.TransFlowAddForm;
import com.yikes.srb.leadingModle.form.transFlow.TransFlowEditForm;
import com.yikes.srb.leadingModle.form.transFlow.TransFlowQuery;
import com.yikes.srb.leadingModle.vo.TransFlowVO;
import com.yikes.srb.pojo.bo.TransFlowBO;
import com.yikes.srb.pojo.entity.TransFlow;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid;

import java.util.List;

/**
 * <p>
 * 交易流水表 服务类
 * </p>
 *
 * @author guanrong.yin
 * @since 2024-12-03
 */
public interface TransFlowService extends IService<TransFlow> {

    /**
     * 分页查询
     *
     * @param query
     * @return
     */
    PageResult<TransFlowVO> listPage(TransFlowQuery query);

    /**
     * 根据id查询单条信息
     *
     * @param id
     * @return
     */
    TransFlowVO infoId(Long id);

    /**
     * 新增
     * @param form
     */
    void create(@Valid TransFlowAddForm form);

    /**
     * 编辑
     * @param form
     */
    void edit(@Valid TransFlowEditForm form);

    /**
     * 删除
     * @param id
     */
    void del(Long id);

    /**
     * 保存交易流水业务
     * @param transFlowBO
     */
    void saveTransFlow(TransFlowBO transFlowBO);

    /**
     * 判断交易流水是否保存
     * @param agentBillNo
     * @return
     */
    boolean isSaveTransFlow(String agentBillNo);

    /**
     * 获取列表
     * @param userId
     * @return
     */
    List<TransFlowVO> selectByUserId(Long userId);
}
